From: Keir Fraser Date: Mon, 13 Jul 2009 10:18:57 +0000 (+0100) Subject: i386: fix boot X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13619 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=2e2e8763c259199aae75fdce6d607b1c01835aab;p=xen.git i386: fix boot Since the Xen heap pages (which are the only ones mapped at this point) don't get passed to init_boot_pages(), it has no place to store the bootmem regions without faulting. Hence, a mapped page must be passed to that function as the very first thing. Signed-off-by: Jan Beulich --- diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index b7966dfd63..07c11c9788 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -763,7 +763,9 @@ void __init __start_xen(unsigned long mbi_p) reserve_e820_ram(&boot_e820, initial_images_base, initial_images_end); #if defined(CONFIG_X86_32) - xenheap_initial_phys_start = __pa(&_end); + xenheap_initial_phys_start = (PFN_UP(__pa(&_end)) + 1) << PAGE_SHIFT; + /* Must pass a single mapped page for populating bootmem_region_list. */ + init_boot_pages(__pa(&_end), xenheap_initial_phys_start); xenheap_phys_end = DIRECTMAP_MBYTES << 20; #else if ( !xen_phys_start )